home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs49.d81 / hack1.sfx / hacking1.1-3 next >
Text File  |  1990-02-12  |  30KB  |  502 lines

  1.   ╙ORRY THAT THIS IS LATER THAN ╔ HAD HOPED TO GET IT OUT, BUT HERE IT IS --
  2. ┼XPECT ANOTHER ONE SOON IN A MONTH OR TWO DEPENDING ON SUBMISSIONS... ╨RAISE,
  3. ├OMMENTS, (╔T SUCKS, ╔ LOVED IT, ETC) ARE WELCOME ->
  4. DUCK@PEMBVAX1.PEMBROKE.EDU.  ═ANY THANKS TO ├RAIG ┬RUCE FOR HIS ARTICLE ON LINE
  5. DRAWING / DOT PLOTTING WITH THE 80 COLUMN SCREEN ON THE ├=128.
  6.  
  7. ===============================================================================
  8. ╚ACKING / ╘HIS ═AGAZINE
  9. BY ├RAIG ╘AYLOR
  10. DUCK@PEMBVAX1.PEMBROKE.EDU
  11.  
  12. ─EF:
  13.   ╚ACKER - ╬OUN - ┴ TALENTED AMATEUR USER OF COMPUTERS.
  14.   ╙OURCE - ╫EBSTER'S ╬EW ╫ORLD ─ICTIONARY
  15.  
  16. ├ORRECTION:
  17.   ╚ACKER - ╬OUN - ┴ TALENTED USER OF COMPUTERS.
  18.  
  19.  
  20.   ╘HERE, NOW THAT WE GOT THAT OUT OF THE WAY, LET'S SEE HOW SOME PEOPLE
  21. INTERPRET THE WORD HACKER. ╔N THE 1980'S NEWSPAPERS, MAGAZINES, MOVIES -
  22. EVERYWHERE YA LOOKED PEOPLE WERE USING THE TERM "╚ACKER" TO DENOTE A PERSON WHO
  23. MALICIOUSLY TRIED TO DESTROY / BORE ILL INTENT TOWARDS ANOTHER COMPUTER SYSTEM.
  24. ╘HIS WAS THE RESULT OF THE MISUNDERSTANDING OF THE ACTUAL DEFINITION OF
  25. "╚ACKER" (UNDER MY CORRECTION ABOVE).
  26.  
  27.   ╘HIS MAGAZINE WILL NOT TELL PEOPLE HOW TO "PHREAK", HOW TO HHACK VOICE
  28. MAILBOXES AND OTHER ILLEGAL ACTIVITIES.  ╚OWEVER, IT WILL ATTEMPT TO REVEAL
  29. SOME OF THE "MYSTIQUE" BEHIND SOME OF THE NEW TECHNIQUES AND ABILITIES FOUND IN
  30. THE ├OMMODORE 64 AND ├OMMODORE 128 THAT ARE JUST NOW BEING REVEALED.
  31. ╔N THE EVENT THAT AN ARTICLE IS SUBMITTED AND THERE IS A QUESTION ABOUT IT'S
  32. ABILITY TO BE APPLIED TOWARDS ILLEGAL ACTIVITES, THE ARTICLE WILL BE CARRIED
  33. WITH A WARNING THAT THE INTENT IS NOT TOWARDS THAT ACTIVITY.  ╚OPEFULLY, THESE
  34. WILL NEVER COME ALONG. :-)
  35.   ╘HE ├OMMODORE 64 CAME OUT IN LATE 1982 (╔ BELIEVE) AND WAS KNOWN TO ONLY
  36. SUPPORT 16 COLORS, 320 X 200 RESOLUTION GRAPHICS OF 2 COLORS, 160X200
  37. RESOLUTION GRAPHICS OF 4 COLORS.  ╙INCE THEN PEOPLE HAVE PUSHED THE ├OMMODORE
  38. 64 TO ITS LIMITS WITH APPARENT RESOLUTION OF 320 X 200 WITH A RESOLUTION OF 4
  39. COLORS AND EVEN HIGHER... MORE THAN 8 SPRITES ON THE SCREEN... FAST
  40. HIGH-QUALITY DIGITIZED SOUNDS....
  41.   ╘HE ├OMMODORE 128 CAME OUT AS AN "UPGRADE" FROM THE ├OMMODORE 64 AND WITH
  42. IT'S UNIQUE MEMORY MANAGEMENT SCHEME AND THE ┌80A CHIP STILL ON THERE PEOPLE
  43. ARE STILL FINDING OUT UNIQUE AND INTERESTING WAYS TO EXPLORE THE ├=128. ╧NE OF
  44. THE MOST INTERESTING HAS BEEN THAT OF THE SEPERATE VIDEO DISPLAY CHIP WHICH
  45. MAKES IT POSSIBLE TO DISPALY 640X200 RESOLUTION GRAPHICS QUICKLY AND EASILY.
  46.  
  47. **┴╘╘┼╬╘╔╧╬**
  48.   ╘HIS MAGAZINE IS GOING TO BE A SOURCEBOOK OF MANY PEOPLE - ╔F YOU KNOW
  49. ANYTHING ABOUT SOMETHING, PLEASE FEEL FREE TO SUBMIT IT.  ╩UST MAIL THE ARTICLE
  50. TO THE FOLLOWING :
  51.     DUCK@PEMBVAX1.PEMBROKE.EDU
  52.     AND A SUBJECT OF "┴╥╘╔├╠┼ - " AND THEN THE ARTICLE NAME.
  53.  
  54.   ╘HE SOURCE CODE FOR ALL PROGRAMS MENTIONED WITHIN ARTICLES WILL BE PROVIDED
  55. AS WELL AS ANY EXECUTABLES UUENCODED SENT OUT SEPRATELY. [┼D. ╬OTE - ╔N THIS
  56. ISSUE, THE SOURCE IS NOT SENT SEPERATELY DUE TO ONLY ONE ARTICLE WITH FILES]
  57.  
  58.   ╔N ADDITION, THE MAGAZINE WILL GO OUT WHEN THERE ARE ENOUGH ARTICLES
  59. COLLECTED.  ┴LSO, ╔'M CURRENTLY IN COLLEGE - SO - IT WILL ALSO BE DEPENDANT ON
  60. FEW TESTS ETC BEING AROUND THE RELEASE PERIOD.
  61.  
  62.   ╔N THIS ISSUE:
  63.  
  64.     ╘ITLE                               ┴UTHOR(S)
  65. ------------------------------------------------------------------------------
  66. ╚ACKING - ─EFINITION ╧F            DUCK@PEMBVAX1.PEMBROKE.EDU
  67. ╠EARNING ═╠ - ╨ART 1            DUCK@PEMBVAX1.PEMBROKE.EDU
  68. 6502 ╦NOWN/╒NKNOWN ╧PCODES        COMPILATION OF SEVERAL
  69. ─OT ╨LOTTING & ┬ITMAPPING        F2RX@JUPITER.SUN.CSD.UNB.CA
  70.   THE 8563 ╙CREEN.
  71.  
  72. ** ┴LL ARTICLES AND FILES (├) 1992 BY THEIR RESPECTIVE AUTHORS.
  73. =============================================================================
  74. ┬EGINNING ═╠ - ╨ART ╧NE
  75. (├) 1992 BY ├RAIG ╘AYLOR
  76.  
  77.   ╘HE BEST WAY TO LEARN MACHINE LANGUAGE IS TO ACTUALLY CODE ROUTINES THAT YOU
  78. DON'T THINK WILL WORK, HOPE THAT THEY WORK, AND THEN FIGURE OUT WHY THEY DON'T
  79. WORK. (╔F THEY DO WORK, YOU TRY TO FIGURE OUT WHY YOU DIDN'T THINK THEY'D
  80. WORK).  ╔E: ╘╚┼ ┬┼╙╘ ╫┴┘ ╘╧ ╠┼┴╥╬ ┴╬┘ ╨╥╧╟╥┴══╔╬╟ ╠┴╬╟╒┴╟┼ ╔╙ ╘╧ ╨╥╧╟╥┴═ ╔╬
  81. ╘╚┴╘ ╠┴╬╟╒┴╟┼.  ┴ND ═ACHINE ╠ANGUAGE IS A PROGRAMMING LANGUAGE.
  82.   ╬OW, LET'S GET A FEW TERMS AND DEFINITIONS OUT OF THE WAY:
  83.  
  84.   ═ACHINE ╠ANGUAGE - ╔NSTRUCTIONS THAT THE COMPUTER UNDERSTANDS AT A PRIMITIVE
  85.      LEVEL AND EXECUTES ACCORDINGLY.
  86.   ┴SSEMBLY ╠ANGUAGE - ╔NSTRUCTIONS MORE UNDERSTANDABLE TO HUMANS THAN PURE
  87.      ═ACHINE ╠ANGUAGE THAT MAKES LIFE EASIER.
  88.  
  89.                       ┴SSEMBLY:            ═ACHINE:
  90.     ┼XAMPLE:    LDA #$00                  $┴9 $00
  91.  
  92.   ╚UH? YOU MIGHT BE SAYING AT THE MOMENT.  ╘URNS OUT THAT ╠─┴ STANDS FOR, OR IS
  93. A MNEMONIC (COMPUTER PEOPLE ALWAYS COME UP WITH THESE BIG LONG WORDS -- YOU'LL
  94. SEE MNEMONIC'S OFTEN WHEN DEALING WITH MACHINE LANGUAGE) FOR THE FOLLOWING:
  95.     "╠╧┴─ REGISTER ┴ WITH THE FOLLOWING VALUE"
  96.      ^  ^          ^
  97.   ├OOL 'EH? ┘EAH, BUT THERE'S SOMEBODY GRUMBLING NOW ABOUT WHY NOT MAKE IT
  98. ╠╧┴─┴ ETC.. ╚EY, THAT'S LIFE. (╟╥╔╬).
  99.   
  100.   ╧H, MORE DEFINITIONS:
  101.  
  102.   ╥EGISTER - ┴ LOCATION INSIDE THE ├╨╒ THAT CAN BE MANIPULATED DIRECTLY WITHOUT
  103.      HAVING TO ACCESS MEMORY.
  104.  
  105.   ╘HE "┴" REGISTER IS OFTEN CALLED THE ACCUMALATOR WHICH INDICATES ITS
  106. FUNCTION: ALL MATH AND LOGICAL MANIPULATIONS ARE DONE TO THE "┴" REGISTER (FROM
  107. HEREON OUT IT WILL BE REFERRED TO AS .┴).
  108.   ╘HERE ARE TWO OTHER REGISTERS INSIDE THE 6502 PROCESSOR, SPECIFICALLY .╪ AND
  109. .┘.  ╘HESE REGISTERS HELP ACT AS COUNTERS AND INDEXES INTO MEMORY (SORTA LIKE
  110. MEM[X] IN PASCAL BUT NOT QUITE...).
  111.  
  112.   ╬OW, LET'S ADD 3 AND 5 AND LEAVE THE RESULT IN THE ACCUMALATOR (.┴).
  113.  
  114.         LDA    #3         ; ╚ERE .┴ = 3 (ANYTHING W/ A ; IS A
  115.    ; COMMENT AND WILL BE IGNORED BY THE ASSEMBLER... 
  116.         CLC        ; HU? - ╘HIS CLEARS THE CARRY. ╘HE 6502
  117.   ; DOES ADDITION *EVERYTIME* WITH THE CARRY ... SO IF WE CLEAR IT IT WON'T
  118.   ; AFFECT THE RESULT.
  119.         ADC    #5        ; ╬OW, .┴ = .┴ + 5
  120.  
  121.   AND WE'RE DONE.  ╔F THE ├╠├ CONFUSED YOU THEN CONSIDER THAT IF YOU'RE ADDING
  122. A COLUMN OF #'S:
  123.                
  124.        12 <--\__╘HE 2 + 9 = 11, BUT WE PUT THE 1 DOWN AND SET THE CARRY TO 1.
  125.     +  89 <---/ 
  126.        --
  127.       101
  128.    ╘HEN WE SAY 1 + 8 + CARRY , WHICH IN THIS CASE HAPPENS TO = 1 AND WE GET 10
  129. AND AGAIN WE SET THE CARRY AND WRITE DOWN 0. ╘HEN IT'S JUST THE CARRY AND WE
  130. WRITE THAT DOWN.  ╔F WE DIDN'T CLEAR THE CARRY WE MAY HAVE ENDED UP WITH THE
  131. VALUE OF 9 INSTEAD 8 IF THE CARRY HAD HAPPENED TO BE SET.
  132.   
  133.   ┴AAGH, ═ATH - ╠ET'S CONTINUE - ╘HE ├╠├ MNEMONIC STANDS FOR "├╠┼┴╥ ├┴╥╥┘" AND
  134. THE ┴─├ STANDS FOR "┴── WITH ├┴╥╥┘".  ╧N MANY PROCESSORS THERE IS A ┴──
  135. (WITHOUT A CARRY) BUT UNFORTUNATELY THE 6502 PROCESSOR INSIDE THE ├=64 DOESN'T
  136. HAVE IT.
  137.  ╙O WE'VE GOT:
  138.     LOAD REG ┴ WITH THE VALUE 5             LDA #5
  139.     CLEAR THE CARRY                CLC
  140.     ADD REG A AND VALUE 3            ADC #3
  141.  
  142.  ╔N ┬ASIC IT'S JUST: 
  143.     ┴ = 5+3 
  144.  
  145.   ╧NE STATEMENT... ╔N ═ACHINE ╠ANGUAGE YOU'VE GOT TO BREAK EVERYTHING DOWN INTO
  146. SMALLER AND SMALLER STEPS AND QUITE OFTEN THE ═╠ LISTING WILL BE FAR LONGER
  147. THAN THE ┬┴╙╔├ OR ╨┴╙├┴╠ OR ├ EQUIVLENT.
  148.  
  149.  ─EFINITIONS:
  150.    ┴SSEMBLER - ╨ROGRAM TAKES SOURCE CODE IN BASIC FORM OR FROM A FILE AND
  151. WRITES TO MEMORY OR A FILE THE RESULTING EXECUTABLE. ┴LLOWS HIGHER FLEXIBILITY
  152. THAN A MONITOR (SEE BELOW) DUE TO USE OF LABELS ETC AND NOT HAVING TO KEEP
  153. TRACK OF EACH ADDRESS WITHIN THE PROGRAM.
  154.  
  155.   ═ONITOR - ┴ PROGRAM, RESIDENT IN MEMORY, INVOKED BY A SYS CALL FROM BASIC OR
  156. BY HITTING THE RESTORE KEY THAT WILL LET YOU DISASSEMBLE, ASSEMBLE AND EXAMINE
  157. AREAS OF MEMORY AND EXECUTE PROGRAMS DIRECTLY FROM THE MONITOR. ╒SEFUL FOR
  158. DEBUGGING PROGRAMS AND FOR WRITING SHORT PROGRAMS.
  159.   
  160.   ╠ET'S ENTER THE FOLLOWING INTO A MONITOR (IF YOU DON'T HAVE ONE THEN CONTACT
  161. DUCK@PEMBVAX1.PEMBROKE.EDU AND ╔'LL SEND YA ONE):
  162.  
  163. 128:            C64:
  164. >A 1300 LDA #$93         >A C000 LDA #$93
  165. >A 1302 JSR $FFD2    >A C003 JSR $FFD2
  166. >A 1305 RTS        >A C005    RTS
  167. (EXIT MONITOR)        (EXIT MONITOR)
  168. BANK15:SYS4864        SYS 49152
  169.  
  170.   ╫OW! ╔T CLEARED THE SCREEN. ╬EAT 'EH?  ┬UT SEE HOW MUCH YA GOTTA BREAK
  171. PROBLEMS DOWN?  ╘HE FIRST STATEMENT LOADS IN $93 HEX INTO THE ACCUMALATOR ($93
  172. HEX JUST HAPPENS TO EQUAL 147 WHICH IS ALSO THE ├OMMODORSCII CODE FOR CLEAR
  173. SCREEN.  ╞OR A WHOLE LIST JUST LOOK IN THE BACK OF THE BOOK THAT CAME WITH THE
  174. COMPUTER).  ╘HEN WE JUMP TO A SYSTEM ROUTINE WHICH ├OMMODORE SO GRACIOUSLY
  175. SUPPLIED US WITH THAT PRINTS THE VALUE OF THE CHARACTER IN .┴ TO THE SCREEN.
  176. (JSR $FFD2) THEN WE DO A ╥╘╙ (╥E╘URN FROM ╙UBROUTINE) SO THAT WE WILL GO BACK
  177. TO BASIC AND THE ╥EADY PROMPT WHEN WE ARE FINISHED WITH THE SYS CALL.
  178.   ┘OU ├= 128 PEOPLE MAY BE WONDERING WHY YOU HAD TO DO A BANK 15 AND ASSEMBLE
  179. THE STUFF AT A DIFFERENT MEMORY LOCATION.  ╘URNS OUT THAT THE ├128 MEMORY MAP
  180. OF WHERE ROUTINES ETC ARE AT IS MUCH MORE COMPLEX THAN THE ├=64 AND THUS YOU
  181. HAVE TO TELL BASIC WHICH BANK YOU WISH TO HAVE ALL SYS, PEEK, AND POKE CALLS TO
  182. TAKE PLACE IN. ┴LSO, $C000 AS USED ON THE ├=64 IS NOT AN AREA THAT IS FREE TO
  183. USE ON THE ├128 IN THIS MANNER.
  184.  
  185.   ┴SSIGNMENT: ╘AKE A LOOK @ THE DIFFERENT COMMANDS AS LISTED IN 6502 ╧PCODES
  186. AND TRY TO UNDERSTAND WHAT THEY DO. ┼XPERIMENT WITH THE JSR $FFD2 ROUTINE BY
  187. USING DIFFERENT VALUES ETC.
  188.  
  189.   ╬EXT ╘IME: ╨RINTING OUT STRINGS, AND UNDERSTANDING '╔NDEXING'.
  190.  
  191. ===========================================================================
  192. 6502 ╧PCODES AND ╤UASI-╧PCODES.
  193. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  194.  
  195.   ╘HE FOLLOWING TABLE LISTS ALL OF THE AVAILABLE OPCODES ON THE 65XX LINE OF 
  196. MICRO-PROCESSORS (SUCH AS THE 6510 ON THE ├=64 AND THE 8502 ON THE ├=128)
  197.  
  198. -----------------------------------------------------------------------------
  199. ╙TD ═NEMONIC ╚EX ╓ALUE ─ESCRIPTION                ┴DDRESSING ═ODE  ┬YTES/╘IME 
  200. *   ┬╥╦      $00       ╙TACK <- ╨├, ╨├ <- ($FFFE) (╔MMEDIATE)      1/7
  201. *   ╧╥┴      $01       ┴ <- (┴) ╓ ═               (╔ND,╪)          6/2
  202.     ╩┴═      $02       [LOCKS UP MACHINE]         (╔MPLIED)        1/-
  203.     ╙╠╧      $03       ═ <- (═ >> 1) + ┴ + ├      (╔ND,╪)          2/8
  204.     ╬╧╨      $04       [NO OPERATION]             (┌-╨AGE)         2/3
  205. *   ╧╥┴      $05       ┴ <- (┴) ╓ ═               (┌-╨AGE)         2/3
  206. *   ┴╙╠      $06       ├ <- ┴7, ┴ <- (┴) << 1     (┌-╨AGE)         2/5
  207.     ╙╠╧      $07       ═ <- (═ >> 1) + ┴ + ├      (┌-╨AGE)         2/5
  208. *   ╨╚╨      $08       ╙TACK <- (╨)               (╔MPLIED)        1/3
  209. *   ╧╥┴      $09       ┴ <- (┴) ╓ ═               (╔MMEDIATE)      2/2
  210. *   ┴╙╠      $0┴       ├ <- ┴7, ┴ <- (┴) << 1     (┴CCUMALATOR)    1/2
  211.     ┴╬├      $0┬       ┴ <- ┴ /\ ═, ├=~┴7         (╔MMEDIATE)      1/2
  212.     ╬╧╨      $0├       [NO OPERATION]             (┴BSOLUTE)       3/4
  213. *   ╧╥┴      $0─       ┴ <- (┴) ╓ ═               (┴BSOLUTE)       3/4
  214. *   ┴╙╠      $0┼       ├ <- ┴7, ┴ <- (┴) << 1     (┴BSOLUTE)       3/6
  215.     ╙╠╧      $0╞       ═ <- (═ >> 1) + ┴ + ├      (┴BSOLUTE)       3/6
  216. *   ┬╨╠      $10       IF ╬=0, ╨├ = ╨├ + OFFSET   (╥ELATIVE)       2/2'2
  217. *   ╧╥┴      $11       ┴ <- (┴) ╓ ═               ((╔ND),┘)        2/5'1
  218.     ╩┴═      $12       [LOCKS UP MACHINE]         (╔MPLIED)        1/-
  219.     ╙╠╧      $13       ═ <- (═ >. 1) + ┴ + ├      ((╔ND),┘)        2/8'5
  220.     ╬╧╨      $14       [NO OPERATION]             (┌-╨AGE,╪)       2/4
  221. *   ╧╥┴      $15       ┴ <- (┴) ╓ ═               (┌-╨AGE,╪)       2/4
  222. *   ┴╙╠      $16       ├ <- ┴7, ┴ <- (┴) << 1     (┌-╨AGE,╪)       2/6
  223.     ╙╠╧      $17       ═ <- (═ >> 1) + ┴ + ├      (┌-╨AGE,╪)       2/6
  224. *   ├╠├      $18       ├ <- 0                     (╔MPLIED)        1/2
  225. *   ╧╥┴      $19       ┴ <- (┴) ╓ ═               (┴BSOLUTE,┘)     3/4'1
  226.     ╬╧╨      $1┴       [NO OPERATION]             (╔MPLIED)        1/2
  227.     ╙╠╧      $1┬       ═ <- (═ >> 1) + ┴ + ├      (┴BSOLUTE,┘)     3/7
  228.     ╬╧╨      $1├       [NO OPERATION]             (┴BSOLUTE,╪)     2/4'1
  229. *   ╧╥┴      $1─       ┴ <- (┴) ╓ ═               (┴BSOLUTE,╪)     3/4'1
  230. *   ┴╙╠      $1┼       ├ <- ┴7, ┴ <- (┴) << 1     (┴BSOLUTE,╪)     3/7
  231.     ╙╠╧      $1╞       ═ <- (═ >> 1) + ┴ + ├      (┴BSOLUTE,╪)     3/7
  232. *   ╩╙╥      $20       ╙TACK <- ╨├, ╨├ <- ┴DDRESS (┴BSOLUTE)       3/6
  233. *   ┴╬─      $21       ┴ <- (┴) /\ ═              (╔ND,╪)          2/6
  234.     ╩┴═      $22       [LOCKS UP MACHINE]         (╔MPLIED)        1/-
  235.     ╥╠┴      $23       ═ <- (═ << 1) /\ (┴)       (╔ND,╪)          2/8
  236. *   ┬╔╘      $24       ┌ <- ~(┴ /\ ═) ╬<-═7 ╓<-═6 (┌-╨AGE)         2/3 
  237. *   ┴╬─      $25       ┴ <- (┴) /\ ═              (┌-╨AGE)         2/3
  238. *   ╥╧╠      $26       ├ <- ┴7 & ┴ <- ┴ << 1 + ├  (┌-╨AGE)         2/5
  239.     ╥╠┴      $27       ═ <- (═ << 1) /\ (┴)       (┌-╨AGE)         2/5'5
  240. *   ╨╠╨      $28       ┴ <- (╙TACK)               (╔MPLIED)        1/4
  241. *   ┴╬─      $29       ┴ <- (┴) /\ ═              (╔MMEDIATE)      2/2
  242. *   ╥╧╠      $2┴       ├ <- ┴7 & ┴ <- ┴ << 1 + ├  (┴CCUMALATOR)    1/2
  243.     ┴╬├      $2┬       ┴ <- ┴ /\ ═, ├ <- ~┴7      (╔MMEDIATE9      1/2     
  244. *   ┬╔╘      $2├       ┌ <- ~(┴ /\ ═) ╬<-═7 ╓<-═6 (┴BSOLUTE)       3/4
  245. *   ┴╬─      $2─       ┴ <- (┴) /\ ═              (┴BSOLUTE)       3/4
  246. *   ╥╧╠      $2┼       ├ <- ┴7 & ┴ <- ┴ << 1 + ├  (┴BSOLUTE)       3/6
  247.     ╥╠┴      $2╞       ═ <- (═ << 1) /\ (┴)       (┴BSOLUTE)       3/6'5
  248. *   ┬═╔      $30       IF ╬=1, ╨├ = ╨├ + OFFSET   (╥ELATIVE)       2/2'2
  249. *   ┴╬─      $31       ┴ <- (┴) /\ ═              ((╔ND),┘)        2/5'1
  250.     ╩┴═      $32       [LOCKS UP MACHINE]         (╔MPLIED)        1/-
  251.     ╥╠┴      $33       ═ <- (═ << 1) /\ (┴)       ((╔ND),┘)        2/8'5
  252.     ╬╧╨      $34       [NO OPERATION]             (┌-╨AGE,╪)       2/4
  253. *   ┴╬─      $35       ┴ <- (┴) /\ ═              (┌-╨AGE,╪)       2/4
  254. *   ╥╧╠      $36       ├ <- ┴7 & ┴ <- ┴ << 1 + ├  (┌-╨AGE,╪)       2/6
  255.     ╥╠┴      $37       ═ <- (═ << 1) /\ (┴)       (┌-╨AGE,╪)       2/6'5
  256. *   ╙┼├      $38       ├ <- 1                     (╔MPLIED)        1/2
  257. *   ┴╬─      $39       ┴ <- (┴) /\ ═              (┴BSOLUTE,┘)     3/4'1
  258.     ╬╧╨      $3┴       [NO OPERATION]             (╔MPLIED)        1/2
  259.     ╥╠┴      $3┬       ═ <- (═ << 1) /\ (┴)       (┴BSOLUTE,┘)     3/7'5
  260.     ╬╧╨      $3├       [NO OPERATION]             (┴BSOLUTE,╪)     3/4'1
  261. *   ┴╬─      $3─       ┴ <- (┴) /\ ═              (┴BSOLUTE,╪)     3/4'1
  262. *   ╥╧╠      $3┼       ├ <- ┴7 & ┴ <- ┴ << 1 + ├  (┴BSOLUTE,╪)     3/7
  263.     ╥╠┴      $3╞       ═ <- (═ << 1) /\ (┴)       (┴BSOLUTE,╪)     3/7'5
  264. *   ╥╘╔      $40       ╨ <- (╙TACK), ╨├ <-(╙TACK) (╔MPLIED)        1/6
  265. *   ┼╧╥      $41       ┴ <- (┴) \-/ ═             (╔ND,╪)          2/6
  266.     ╩┴═      $42       [LOCKS UP MACHINE]         (╔MPLIED)        1/-
  267.     ╙╥┼      $43       ═ <- (═ >> 1) \-/ ┴        (╔ND,╪)          2/8  
  268.     ╬╧╨      $44       [NO OPERATION]             (┌-╨AGE)         2/3
  269. *   ┼╧╥      $45       ┴ <- (┴) \-/ ═             (┌-╨AGE)         2/3
  270. *   ╠╙╥      $46       ├ <- ┴0, ┴ <- (┴) >> 1     (┴BSOLUTE,╪)     3/7 
  271.     ╙╥┼      $47       ═ <- (═ >> 1) \-/ ┴        (┌-╨AGE)         2/5
  272. *   ╨╚┴      $48       ╙TACK <- (┴)               (╔MPLIED)        1/3
  273. *   ┼╧╥      $49       ┴ <- (┴) \-/ ═             (╔MMEDIATE)      2/2
  274. *   ╠╙╥      $4┴       ├ <- ┴0, ┴ <- (┴) >> 1     (┴CCUMALATOR)    1/2
  275.     ┴╙╥      $4┬       ┴ <- [(┴ /\ ═) >> 1]       (╔MMEDIATE)      1/2
  276. *   ╩═╨      $4├       ╨├ <- ┴DDRESS              (┴BSOLUTE)       3/3
  277. *   ┼╧╥      $4─       ┴ <- (┴) \-/ ═             (┴BSOLUTE)       3/4
  278. *   ╠╙╥      $4┼       ├ <- ┴0, ┴ <- (┴) >> 1     (┴BSOLUTE)       3/6
  279.     ╙╥┼      $4╞       ═ <- (═ >> 1) \-/ ┴        (┴BSOLUTE)       3/6
  280. *   ┬╓├      $50       IF ╓=0, ╨├ = ╨├ + OFFSET   (╥ELATIVE)       2/2'2
  281. *   ┼╧╥      $51       ┴ <- (┴) \-/ ═             ((╔ND),┘)        2/5'1
  282.     ╩┴═      $52       [LOCKS UP MACHINE]         (╔MPLIED)        1/-
  283.     ╙╥┼      $53       ═ <- (═ >> 1) \-/ ┴        ((╔ND),┘)        2/8
  284.     ╬╧╨      $54       [NO OPERATION]             (┌-╨AGE,╪)       2/4
  285. *   ┼╧╥      $55       ┴ <- (┴) \-/ ═             (┌-╨AGE,╪)       2/4
  286. *   ╠╙╥      $56       ├ <- ┴0, ┴ <- (┴) >> 1     (┌-╨AGE,╪)       2/6
  287.     ╙╥┼      $57       ═ <- (═ >> 1) \-/ ┴        (┌-╨AGE,╪)       2/6
  288. *   ├╠╔      $58       ╔ <- 0                     (╔MPLIED)        1/2
  289. *   ┼╧╥      $59       ┴ <- (┴) \-/ ═             (┴BSOLUTE,┘)     3/4'1
  290.     ╬╧╨      $5┴       [NO OPERATION]             (╔MPLIED)        1/2 
  291.     ╙╥┼      $5┬       ═ <- (═ >> 1) \-/ ┴        (┴BSOLUTE,┘)     3/7
  292.     ╬╧╨      $5├       [NO OPERATION]             (┴BSOLUTE,╪)     3/4'1
  293. *   ┼╧╥      $5─       ┴ <- (┴) \-/ ═             (┴BSOLUTE,╪)     3/4'1
  294.     ╙╥┼      $5╞       ═ <- (═ >> 1) \-/ ┴        (┴BSOLUTE,╪)     3/7
  295. *   ╥╘╙      $60       ╨├ <- (╙TACK)              (╔MPLIED)        1/6
  296. *   ┴─├      $61       ┴ <- (┴) + ═ + ├           (╔ND,╪)          2/6
  297.     ╩┴═      $62       [LOCKS UP MACHINE]         (╔MPLIED)        1/-
  298.     ╥╥┴      $63       ═ <- (═ >> 1) + (┴) + ├    (╔ND,╪)          2/8'5
  299.     ╬╧╨      $64       [NO OPERATION]             (┌-╨AGE)         2/3
  300. *   ┴─├      $65       ┴ <- (┴) + ═ + ├           (┌-╨AGE)         2/3
  301. *   ╥╧╥      $66       ├<-┴0 & ┴<- (┴7=├ + ┴>>1)  (┌-╨AGE)         2/5
  302.     ╥╥┴      $67       ═ <- (═ >> 1) + (┴) + ├    (┌-╨AGE)         2/5'5
  303. *   ╨╠┴      $68       ┴ <- (╙TACK)               (╔MPLIED)        1/4
  304. *   ┴─├      $69       ┴ <- (┴) + ═ + ├           (╔MMEDIATE)      2/2
  305. *   ╥╧╥      $6┴       ├<-┴0 & ┴<- (┴7=├ + ┴>>1)  (┴CCUMALATOR)    1/2
  306.     ┴╥╥      $6┬       ┴ <- [(┴ /\ ═) >> 1]       (╔MMEDIATE)      1/2'5
  307. *   ╩═╨      $6├       ╨├ <- ┴DDRESS              (╔NDIRECT)       3/5
  308. *   ┴─├      $6─       ┴ <- (┴) + ═ + ├           (┴BSOLUTE)       3/4
  309. *   ╥╧╥      $6┼       ├<-┴0 & ┴<- (┴7=├ + ┴>>1)  (┴BSOLUTE)       3/6 
  310.     ╥╥┴      $6╞       ═ <- (═ >> 1) + (┴) + ├    (┴BSOLUTE)       3/6'5
  311. *   ┬╓╙      $70       IF ╓=1, ╨├ = ╨├ + OFFSET   (╥ELATIVE)       2/2'2
  312. *   ┴─├      $71       ┴ <- (┴) + ═ + ├           ((╔ND),┘)        2/5'1
  313.     ╩┴═      $72       [LOCKS UP MACHINE]         (╔MPLIED)        1/-
  314.     ╥╥┴      $73       ═ <- (═ >> 1) + (┴) + ├    ((╔ND),┘)        2/8'5
  315.     ╬╧╨      $74       [NO OPERATION]             (┌-╨AGE,╪)       2/4
  316. *   ┴─├      $75       ┴ <- (┴) + ═ + ├           (┌-╨AGE,╪)       2/4
  317. *   ╥╧╥      $76       ├<-┴0 & ┴<- (┴7=├ + ┴>>1)  (┌-╨AGE,╪)       2/6
  318.     ╥╥┴      $77       ═ <- (═ >> 1) + (┴) + ├    (┌-╨AGE,╪)       2/6'5
  319. *   ╙┼╔      $78       ╔ <- 1                     (╔MPLIED)        1/2
  320. *   ┴─├      $79       ┴ <- (┴) + ═ + ├           (┴BSOLUTE,┘)     3/4'1
  321.     ╬╧╨      $7┴       [NO OPERATION]             (╔MPLIED)        1/2
  322.     ╥╥┴      $7┬       ═ <- (═ >> 1) + (┴) + ├    (┴BSOLUTE,┘)     3/7'5
  323.     ╬╧╨      $7├       [NO OPERATION]             (┴BSOLUTE,╪)     3/4'1
  324. *   ┴─├      $7─       ┴ <- (┴) + ═ + ├           (┴BSOLUTE,╪)     3/4'1
  325. *   ╥╧╥      $7┼       ├<-┴0 & ┴<- (┴7=├ + ┴>>1)  (┴BSOLUTE,╪)     3/7
  326.     ╥╥┴      $7╞       ═ <- (═ >> 1) + (┴) + ├    (┴BSOLUTE,╪)     3/7'5 
  327.     ╬╧╨      $80       [NO OPERATION]             (╔MMEDIATE)      2/2
  328. *   ╙╘┴      $81       ═ <- (┴)                   (╔ND,╪)          2/6
  329.     ╬╧╨      $82       [NO OPERATION]             (╔MMEDIATE)      2/2
  330.     ╙┴╪      $83       ═ <- (┴) /\ (╪)            (╔ND,╪)          2/6
  331. *   ╙╘┘      $84       ═ <- (┘)                   (┌-╨AGE)         2/3
  332. *   ╙╘┴      $85       ═ <- (┴)                   (┌-╨AGE)         2/3
  333. *   ╙╘╪      $86       ═ <- (╪)                   (┌-╨AGE)         2/3
  334.     ╙┴╪      $87       ═ <- (┴) /\ (╪)            (┌-╨AGE)         2/3 
  335. *   ─┼┘      $88       ┘ <- (┘) - 1               (╔MPLIED)        1/2
  336.     ╬╧╨      $89       [NO OPERATION]             (╔MMEDIATE)      2/2
  337. *   ╘╪┴      $8┴       ┴ <- (╪)                   (╔MPLIED)        1/2
  338.     ┴╬┼      $8┬       ═ <-[(┴)\/$┼┼] /\ (╪)/\(═) (╔MMEDIATE)      2/2^4
  339. *   ╙╘┘      $8├       ═ <- (┘)                   (┴BSOLUTE)       3/4
  340. *   ╙╘┴      $8─       ═ <- (┴)                   (┴BSOLUTE)       3/4
  341. *   ╙╘╪      $8┼       ═ <- (╪)                   (┴BSOLUTE)       3/4 
  342.     ╙┴╪      $8╞       ═ <- (┴) /\ (╪)            (┴BSOLUTE)       3/4
  343. *   ┬├├      $90       IF ├=0, ╨├ = ╨├ + OFFSET   (╥ELATIVE)       2/2'2
  344. *   ╙╘┴      $91       ═ <- (┴)                   ((╔ND),┘)        2/6
  345.     ╩┴═      $92       [LOCKS UP MACHINE]         (╔MPLIED)        1/-
  346.     ╙╚┴      $93       ═ <- (┴) /\ (╪) /\ (╨├╚+1) (┴BSOLUTE,╪)     3/6'3
  347. *   ╙╘┘      $94       ═ <- (┘)                   (┌-╨AGE,╪)       2/4
  348. *   ╙╘┴      $95       ═ <- (┴)                   (┌-╨AGE,╪)       2/4
  349.     ╙┴╪      $97       ═ <- (┴) /\ (╪)            (┌-╨AGE,┘)       2/4
  350. *   ╙╘╪      $96       ═ <- (╪)                   (┌-╨AGE,┘)       2/4
  351. *   ╘┘┴      $98       ┴ <- (┘)                   (╔MPLIED)        1/2
  352. *   ╙╘┴      $99       ═ <- (┴)                   (┴BSOLUTE,┘)     3/5
  353. *   ╘╪╙      $9┴       ╙ <- (╪)                   (╔MPLIED)        1/2
  354.     ╙╚╙      $9┬       ╪ <- (┴) /\ (╪), ╙ <- (╪)  (┴BSOLUTE,┘)     3/5
  355.                        ═ <- (╪) /\ (╨├╚+1)      
  356.     ╙╚┘      $9├       ═ <- (┘) /\ (╨├╚+1)        (┴BSOLUTE,┘)     3/5'3
  357. *   ╙╘┴      $9─       ═ <- (┴)                   (┴BSOLUTE,╪)     3/5
  358.     ╙╚╪      $9┼       ═ <- (╪) /\ (╨├╚+1)        (┴BSOLUTE,╪)     3/5'3
  359.     ╙╚┴      $9╞       ═ <- (┴) /\ (╪) /\ (╨├╚+1) (┴BSOLUTE,┘)     3/5'3
  360. *   ╠─┘      $┴0       ┘ <- ═                     (╔MMEDIATE)      2/2
  361. *   ╠─┴      $┴1       ┴ <- ═                     (╔ND,╪)          2/6
  362. *   ╠─╪      $┴2       ╪ <- ═                     (╔MMEDIATE)      2/2
  363.     ╠┴╪      $┴3       ┴ <- ═, ╪ <- ═             (╔ND,╪)          2/6
  364. *   ╠─┘      $┴4       ┘ <- ═                     (┌-╨AGE)         2/3
  365. *   ╠─┴      $┴5       ┴ <- ═                     (┌-╨AGE)         2/3
  366. *   ╠─╪      $┴6       ╪ <- ═                     (┌-╨AGE)         2/3
  367.     ╠┴╪      $┴7       ┴ <- ═, ╪ <- ═             (┌-╨AGE)         2/3
  368. *   ╘┴┘      $┴8       ┘ <- (┴)                   (╔MPLIED)        1/2
  369. *   ╠─┴      $┴9       ┴ <- ═                     (╔MMEDIATE)      2/2
  370. *   ╘┴╪      $┴┴       ╪ <- (┴)                   (╔MPLIED)        1/2
  371.     ╠╪┴      $┴┬       ╪04 <- (╪04) /\ ═04        (╔MMEDIATE)      1/2
  372.                        ┴04 <- (┴04) /\ ═04
  373. *   ╠─┘      $┴├       ┘ <- ═                     (┴BSOLUTE)       3/4
  374. *   ╠─┴      $┴─       ┴ <- ═                     (┴BSOLUTE)       3/4
  375. *   ╠─╪      $┴┼       ╪ <- ═                     (┴BSOLUTE)       3/4
  376.     ╠┴╪      $┴╞       ┴ <- ═, ╪ <- ═             (┴BSOLUTE)       3/4
  377. *   ┬├╙      $┬0       IF ├=1, ╨├ = ╨├ + OFFSET   (╥ELATIVE)       2/2'2
  378. *   ╠─┴      $┬1       ┴ <- ═                     ((╔ND),┘)        2/5'1
  379.     ╩┴═      $┬2       [LOCKS UP MACHINE]         (╔MPLIED)        1/-
  380.     ╠┴╪      $┬3       ┴ <- ═, ╪ <- ═             ((╔ND),┘)        2/5'1
  381. *   ╠─┘      $┬4       ┘ <- ═                     (┌-╨AGE,╪)       2/4
  382. *   ╠─┴      $┬5       ┴ <- ═                     (┌-╨AGE,╪)       2/4
  383. *   ╠─╪      $┬6       ╪ <- ═                     (┌-╨AGE,┘)       2/4
  384.     ╠┴╪      $┬7       ┴ <- ═, ╪ <- ═             (┌-╨AGE,┘)       2/4
  385. *   ├╠╓      $┬8       ╓ <- 0                     (╔MPLIED)        1/2
  386. *   ╠─┴      $┬9       ┴ <- ═                     (┴BSOLUTE,┘)     3/4'1
  387. *   ╘╙╪      $┬┴       ╪ <- (╙)                   (╔MPLIED)        1/2
  388.     ╠┴┼      $┬┬       ╪,╙,┴ <- (╙ /\ ═)          (┴BSOLUTE,┘)     3/4'1
  389. *   ╠─┘      $┬├       ┘ <- ═                     (┴BSOLUTE,╪)     3/4'1
  390. *   ╠─┴      $┬─       ┴ <- ═                     (┴BSOLUTE,╪)     3/4'1
  391. *   ╠─╪      $┬┼       ╪ <- ═                     (┴BSOLUTE,┘)     3/4'1
  392.     ╠┴╪      $┬╞       ┴ <- ═, ╪ <- ═             (┴BSOLUTE,┘)     3/4'1
  393. *   ├╨┘      $├0       (┘ - ═) -> ╬┌├             (╔MMEDIATE)      2/2
  394. *   ├═╨      $├1       (┴ - ═) -> ╬┌├             (╔ND,╪)          2/6
  395.     ╬╧╨      $├2       [NO OPERATION]             (╔MMEDIATE)      2/2
  396.     ─├╨      $├3       ═ <- (═)-1, (┴-═) -> ╬┌├   (╔ND,╪)          2/8
  397. *   ├╨┘      $├4       (┘ - ═) -> ╬┌├             (┌-╨AGE)         2/3
  398. *   ├═╨      $├5       (┴ - ═) -> ╬┌├             (┌-╨AGE)         2/3
  399. *   ─┼├      $├6       ═ <- (═) - 1               (┌-╨AGE)         2/5
  400.     ─├╨      $├7       ═ <- (═)-1, (┴-═) -> ╬┌├   (┌-╨AGE)         2/5
  401. *   ╔╬┘      $├8       ┘ <- (┘) + 1               (╔MPLIED)        1/2
  402. *   ├═╨      $├9       (┴ - ═) -> ╬┌├             (╔MMEDIATE)      2/2
  403. *   ─┼╪      $├┴       ╪ <- (╪) - 1               (╔MPLIED)        1/2
  404.     ╙┬╪      $├┬       ╪ <- (╪)/\(┴) - ═          (╔MMEDIATE)      2/2
  405. *   ├╨┘      $├├       (┘ - ═) -> ╬┌├             (┴BSOLUTE)       3/4
  406. *   ├═╨      $├─       (┴ - ═) -> ╬┌├             (┴BSOLUTE)       3/4
  407. *   ─┼├      $├┼       ═ <- (═) - 1               (┴BSOLUTE)       3/6
  408.     ─├╨      $├╞       ═ <- (═)-1, (┴-═) -> ╬┌├   (┴BSOLUTE)       3/6
  409. *   ┬╬┼      $─0       IF ┌=0, ╨├ = ╨├ + OFFSET   (╥ELATIVE)       2/2'2
  410. *   ├═╨      $─1       (┴ - ═) -> ╬┌├             ((╔ND),┘)        2/5'1
  411.     ╩┴═      $─2       [LOCKS UP MACHINE]         (╔MPLIED)        1/-
  412.     ─├╨      $─3       ═ <- (═)-1, (┴-═) -> ╬┌├   ((╔ND),┘)        2/8
  413.     ╬╧╨      $─4       [NO OPERATION]             (┌-╨AGE,╪)       2/4
  414. *   ├═╨      $─5       (┴ - ═) -> ╬┌├             (┌-╨AGE,╪)       2/4
  415. *   ─┼├      $─6       ═ <- (═) - 1               (┌-╨AGE,╪)       2/6
  416.     ─├╨      $─7       ═ <- (═)-1, (┴-═) -> ╬┌├   (┌-╨AGE,╪)       2/6
  417. *   ├╠─      $─8       ─ <- 0                     (╔MPLIED)        1/2
  418. *   ├═╨      $─9       (┴ - ═) -> ╬┌├             (┴BSOLUTE,┘)     3/4'1
  419.     ╬╧╨      $─┴       [NO OPERATION]             (╔MPLIED)        1/2 
  420.     ─├╨      $─┬       ═ <- (═)-1, (┴-═) -> ╬┌├   (┴BSOLUTE,┘)     3/7
  421.     ╬╧╨      $─├       [NO OPERATION]             (┴BSOLUTE,╪)     3/4'1
  422. *   ├═╨      $──       (┴ - ═) -> ╬┌├             (┴BSOLUTE,╪)     3/4'1
  423. *   ─┼├      $─┼       ═ <- (═) - 1               (┴BSOLUTE,╪)     3/7
  424.     ─├╨      $─╞       ═ <- (═)-1, (┴-═) -> ╬┌├   (┴BSOLUTE,╪)     3/7
  425. *   ├╨╪      $┼0       (╪ - ═) -> ╬┌├             (╔MMEDIATE)      2/2
  426. *   ╙┬├      $┼1       ┴ <- (┴) - ═ - ~├          (╔ND,╪)          2/6
  427.     ╬╧╨      $┼2       [NO OPERATION]             (╔MMEDIATE)      2/2
  428.     ╔╙┬      $┼3       ═ <- (═) - 1,┴ <- (┴)-═-~├ (╔ND,╪)          3/8'1
  429. *   ├╨╪      $┼4       (╪ - ═) -> ╬┌├             (┌-╨AGE)         2/3
  430. *   ╙┬├      $┼5       ┴ <- (┴) - ═ - ~├          (┌-╨AGE)         2/3
  431. *   ╔╬├      $┼6       ═ <- (═) + 1               (┌-╨AGE)         2/5
  432.     ╔╙┬      $┼7       ═ <- (═) - 1,┴ <- (┴)-═-~├ (┌-╨AGE)         2/5  
  433. *   ╔╬╪      $┼8       ╪ <- (╪) +1                (╔MPLIED)        1/2
  434. *   ╙┬├      $┼9       ┴ <- (┴) - ═ - ~├          (╔MMEDIATE)      2/2
  435. *   ╬╧╨      $┼┴       [NO OPERATION]             (╔MPLIED)        1/2
  436.     ╙┬├      $┼┬       ┴ <- (┴) - ═ - ~├          (╔MMEDIATE)      1/2
  437. *   ╙┬├      $┼─       ┴ <- (┴) - ═ - ~├          (┴BSOLUTE)       3/4
  438. *   ├╨╪      $┼├       (╪ - ═) -> ╬┌├             (┴BSOLUTE)       3/4
  439. *   ╔╬├      $┼┼       ═ <- (═) + 1               (┴BSOLUTE)       3/6
  440.     ╔╙┬      $┼╞       ═ <- (═) - 1,┴ <- (┴)-═-~├ (┴BSOLUTE)       3/6
  441. *   ┬┼╤      $╞0       IF ┌=1, ╨├ = ╨├ + OFFSET   (╥ELATIVE)       2/2'2
  442. *   ╙┬├      $╞1       ┴ <- (┴) - ═ - ~├          ((╔ND),┘)        2/5'1
  443.     ╩┴═      $╞2       [LOCKS UP MACHINE]         (╔MPLIED)        1/-
  444.     ╔╙┬      $╞3       ═ <- (═) - 1,┴ <- (┴)-═-~├ ((╔ND),┘)        2/8
  445.     ╬╧╨      $╞4       [NO OPERATION]             (┌-╨AGE,╪)       2/4
  446. *   ╙┬├      $╞5       ┴ <- (┴) - ═ - ~├          (┌-╨AGE,╪)       2/4
  447. *   ╔╬├      $╞6       ═ <- (═) + 1               (┌-╨AGE,╪)       2/6
  448.     ╔╙┬      $╞7       ═ <- (═) - 1,┴ <- (┴)-═-~├ (┌-╨AGE,╪)       2/6
  449. *   ╙┼─      $╞8       ─ <- 1                     (╔MPLIED)        1/2
  450. *   ╙┬├      $╞9       ┴ <- (┴) - ═ - ~├          (┴BSOLUTE,┘)     3/4'1
  451.     ╬╧╨      $╞┴       [NO OPERATION]             (╔MPLIED)        1/2
  452.     ╔╙┬      $╞┬       ═ <- (═) - 1,┴ <- (┴)-═-~├ (┴BSOLUTE,┘)     3/7
  453.     ╬╧╨      $╞├       [NO OPERATION]             (┴BSOLUTE,╪)     3/4'1
  454. *   ╙┬├      $╞─       ┴ <- (┴) - ═ - ~├          (┴BSOLUTE,╪)     3/4'1
  455. *   ╔╬├      $╞┼       ═ <- (═) + 1               (┴BSOLUTE,╪)     3/7
  456.     ╔╙┬      $╞╞       ═ <- (═) - 1,┴ <- (┴)-═-~├ (┴BSOLUTE,╪)     3/7
  457.  
  458. '1 - ┴DD ONE IF ADDRESS CROSSES A PAGE BOUNDRY.
  459. '2 - ┴DD 1 IF BRANCH SUCCEEDS, OR 2 IF INTO ANOTHER PAGE.
  460. '3 - ╔F PAGE BOUNDRY CROSSED THEN ╨├╚+1 IS JUST ╨├╚
  461. '4 - ╙OURCES DISPUTED ON EXACT OPERATION, OR SOMETIMES DOES NOT WORK.
  462. '5 - ╞ULL EIGHT BIT ROTATION (WITH CARRY)
  463.  
  464. ╙OURCES:
  465.   ╨ROGRAMMING THE 6502, ╥ODNEY ┌AKS, (C) 1983 ╙YBEX
  466.   ╨AUL ╧JALA, ╨OST TO ├OMP.╙YS.├BM (PO87553@CS.TUT.FI / ALBERT@CC.TUT.FI)
  467.   ─ ╩OHN ═CKENNA, ╨OST TO ├OMP.╙YS.├BM (GUDJM@UNIWA.UWA.OZ.AU)
  468.  
  469. ├OMPILED BY ├RAIG ╘AYLOR (DUCK@PEMBVAX1.PEMBROKE.EDU)
  470. ==============================================================================
  471. ╙IMPLE ╚IRES ╠INE ─RAWING ╨ACKAGE FOR THE ├-128 80-├OLUMN ╙CREEN
  472.  
  473. ├OPYRIGHT (C) 1992 ├RAIG ┬RUCE <F2RX@JUPITER.SUN.CSD.UNB.CA>
  474.  
  475. 1. ╟╥┴╨╚╔├╙ ╨┴├╦┴╟┼ ╧╓┼╥╓╔┼╫
  476.  
  477. ╘HE GRAPHICS PACKAGE THIS ARTICLE EXPLAINS IS ┬╠╧┴─ED INTO MEMORY AT ADDRESS
  478. $1300 ON BANK 15 AND HAS THREE ENTRY POINTS:
  479.  
  480. $1300 = MOVE THE PIXEL CURSOR OR DRAW A LINE: .┴╪=X, .┘=Y, .├=CMD
  481. $1303 = ACTIVATE GRAPHICS MODE AND CLEAR THE SCREEN
  482. $1306 = EXIT GRAPHICS MODE AND RELOAD THE CHARACTER SET
  483.  
  484. ╘O MOVE THE PIXEL CURSOR TO THE START POINT OF A LINE, LOAD THE .┴╪ REGISTERS
  485. WITH THE ╪ COORDINATE (0-639), LOAD THE .┘ REGISTER WITH THE ┘ COORDINATE
  486. (0-199), CLEAR THE CARRY FLAG, AND CALL $1300.  (═AKE SURE THAT ┬ANK 15 IS IN
  487. CONTEXT).  ╘HIS CAN BE DONE IN ┬┴╙╔├ AS FOLLOWS:
  488.  
  489. ╙┘╙ 4864, ╪ ┴╬─ 255, ╪/256, ┘, 0
  490.  
  491. ╘O DRAW A LINE FROM THE PIXEL CURSOR LOCATION TO A GIVEN POINT, LOAD THE .┴╪
  492. AND .┘ REGISTERS LIKE BEFORE, SET THE CARRY FLAG, AND CALL $1300.  ╘HE PIXEL
  493. CURSOR WILL THEN BE SET TO THE END POINT OF THE LINE JUST DRAWN, SO YOU DO NOT
  494. HAVE TO SET IT AGAIN IF YOU ARE DRAWING A CONTINUOUS OBJECT (LIKE A SQUARE).
  495.  
  496. ╙┘╙ 4864, ╪ ┴╬─ 255, ╪/256, ┘, 1
  497.  
  498. ╘HE ACTIVATE AND EXIT ROUTINES ARE CALLED WITHOUT ANY PARAMETERS AND WORK VERY
  499. SIMPLY.  ┘OU SHOULD BE SURE TO CALL EXIT BEFORE RETURNING TO THE PROGRAM
  500. EDITING MODE OR YOU WILL NOT BE ABLE TO SEE WHAT YOU ARE TYPING.
  501.  
  502.